package net.lizhongxian.interview.hunktimes;

import net.lizhongxian.interview.hunktimes.entity.Coupon;
import net.lizhongxian.interview.hunktimes.entity.Fruit;
import net.lizhongxian.interview.hunktimes.entity.Order;
import net.lizhongxian.interview.hunktimes.entity.Shop;

import java.math.BigDecimal;

public class Main {
	public static void main(String[] args) {

		// 题目1
		System.out.println("题目1");
		Shop shop = new Shop();
		Fruit apple = new Fruit("apple", new BigDecimal("8"));
		Fruit strawberry = new Fruit("strawberry", new BigDecimal("13"));
		// 添加商品
		shop.add(apple);
		shop.add(strawberry);
		// 新增订单
		Order order1 = shop.newOrder();
		order1.addGoods(apple, new BigDecimal("1")); // 1斤苹果
		order1.addGoods(strawberry, new BigDecimal("2")); // 2斤草莓
		// 结算
		// 1斤苹果 + 2斤草莓，总价 8 * 1 + 13 * 2 = 34
		shop.check(order1);

		// 题目2
		System.out.println("题目2");
		Fruit mango = new Fruit("mango", new BigDecimal("20"));
		// 添加商品
		shop.add(mango);
		// 新增订单
		Order order2 = shop.newOrder();
		order2.addGoods(apple, new BigDecimal("1"));
		order2.addGoods(strawberry, new BigDecimal("2"));
		order2.addGoods(mango, new BigDecimal("3"));
		// 结算
		// 1斤苹果 + 2斤草莓 + 3斤芒果，总价 8 * 1 + 13 * 2 + 20 * 3 = 94
		shop.check(order2);

		// 题目3
		System.out.println("题目3");
		// 设置折扣
		strawberry.setDiscount(new BigDecimal("0.8"));
		// 新增订单
		Order order3 = shop.newOrder();
		order3.addGoods(apple, new BigDecimal("1"));
		order3.addGoods(strawberry, new BigDecimal("2"));
		order3.addGoods(mango, new BigDecimal("3"));
		// 结算
		// 1斤苹果 + 2斤草莓 + 3斤芒果，总价 8 * 1 + 13 * 2 * 0.8 + 20 * 3 = 88.8
		shop.check(order3);

		// 题目4
		System.out.println("题目4");
		// 设置折扣
		strawberry.setDiscount(new BigDecimal("1"));
		// 新增订单
		Order order4 = shop.newOrder();
		order4.addGoods(apple, new BigDecimal("1"));
		order4.addGoods(strawberry, new BigDecimal("4"));
		order4.addGoods(mango, new BigDecimal("1"));
		// 使用优惠券
		Coupon coupon = new Coupon(new BigDecimal("100"), new BigDecimal("10"));
		order4.addCoupon(coupon);
		// 结算
		// 1斤苹果 + 4斤草莓 + 1斤芒果，总价 8 * 1 + 13 * 4 + 20 * 1 = 80
		shop.check(order4); // 此时总价80，未满100元，无法使用优惠券

		// 再加一个芒果
		order4.addGoods(mango, new BigDecimal("1"));
		// 1斤苹果 + 4斤草莓 + 2斤芒果，使用满100-10，总价 8 * 1 + 13 * 4 + 20 * 2 - 10 = 90
		shop.check(order4); // 此时总价100，使用优惠券，最终为90

		// 再加一个芒果
		order4.addGoods(mango, new BigDecimal("1"));
		// 1斤苹果 + 4斤草莓 + 3斤芒果，使用满100-10，总价 8 * 1 + 13 * 4 + 20 * 3 - 10 = 110
		shop.check(order4); // 此时总价120，使用优惠券，最终为110
	}
}